package com.example.controller;

import com.example.pojo.Dept;
import com.example.pojo.Result;
import com.example.service.DeptService;
import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/depts")//
public class DeptController {
    @Autowired
    private DeptService deptService;


    @GetMapping
    public Result list(){
        System.out.println("查询全部部门数据");
        List<Dept> deptlist = deptService.findAll();
        System.out.println();
        return Result.success(deptlist);
    }
//    @PathVariable的作用: 将路径参数绑定到方法参数中,并且获取路径参数的值赋值给方法形参  id
//    @RequestParam 查询参数  绑定请求参数中的参数
//    @GetMapping("/{id}")
//    public Result findById(@PathVariable Integer id){
//        System.out.println("查询id为"+id+"部门");
//        Dept dept = deptService.findById(id);
//        return Result.success(dept) ;
//    }
//    形参与路径参数可以同名,也可以不同名
//    同名时,可以省略@PathVariable注解
//    不同名时,需要使用@PathVariable注解指定路径参数的名称
    @GetMapping("/{id}")
    public Result findById(@PathVariable Integer id){
        System.out.println("查询id为"+id+"部门");
//        get有返回值,设置一个变量接收返回值
        Dept dept = deptService.findById(id);
        return Result.success(dept) ;
    }
    @PostMapping
    public Result add(@RequestBody Dept dept){
            System.out.println("添加部门"+dept);
            deptService.add(dept);
            return Result.success();
    }
    //@RequestBody的作用: 将请求体中JSON格式的数据转为java对象
    @PutMapping
    public Result update(@RequestBody Dept dept){
        System.out.println("修改部门"+dept);
        deptService.update(dept);
        return Result.success();
    }
    @DeleteMapping
    public Result delete(Integer id){
        System.out.println("删除id为"+id+"部门");
        deptService.delete(id);
        return Result.success();
    }
}
